package-lock.json lockfileVersion字段的含义
lockfileVersion
指的是 package-lock.json 文件本身的格式版本:
常见版本与npm的版本对应关系
-
lockfileVersion = 1
- npm 5 和 6 使用
- 支持嵌套依赖的描述格式
-
lockfileVersion = 2
- npm 7 引入
- 增加了对 npm 工作空间(workspaces)的支持
-
lockfileVersion = 3
- npm 7 及以后的推荐格式
- 提供了更好的性能和更多的功能支持
示例 package-lock.json:
{
"name": "project-name",
"lockfileVersion": 3,
"requires": true,
"packages": {
// ... 依赖包信息
}
}
lockfileVersion补充说明
- 版本对应关系
- lockfileVersion 不直接对应 npm 的主版本号
- 一个 npm 版本可能支持多个 lockfileVersion
- 向后兼容
- 较新版本的 npm 可以读取旧版本的 lock 文件
- 但建议使用当前 npm 版本推荐的 lockfileVersion
- 迁移建议
- 如果你的项目使用较老的 lockfileVersion,建议在升级 npm 时同时升级 lock 文件版本
- 可以通过删除 package-lock.json 并重新运行
npm install
来生成新版本的 lock 文件